Retry transient block upload failures in place - #2
Merged
ClaudiuSchuster merged 1 commit intoAug 28, 2026
Merged
Conversation
Retry only failed encrypted blocks with fresh upload links and bounded context-aware backoff. Preserve successful blocks and return terminal or exhausted errors without replaying the complete file stream. Refs oss-singularity/proton-drive-linux#42
ClaudiuSchuster
merged commit Aug 28, 2026
c059d75
into
fix/drain-upload-block-workers
1 check passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Motivation
A sanitized live PDrive reproduction showed one 30.4 GiB VFS upload sending
more than 65 GB of aggregate payload while its current attempt remained near
49%. Six separated Proton Storage 502 cycles occurred in the same rclone
process. The service-level recovery guard correctly avoided a restart whenever
payload traffic resumed, but each bridge error still caused rclone to retry the
complete file stream.
The bridge already holds at most eight encrypted 4 MiB blocks for the current
batch. Retrying only the failed block indexes preserves completed work and
avoids turning a transient storage response into a multi-hour retransmission.
Tracked in oss-singularity/proton-drive-linux#42.
Safety boundaries
IDs or file paths
Stacked review
This branch is intentionally based on
fix/drain-upload-block-workers, whichis proposed upstream in rclone#8. The retry decision relies on
that change's guarantee that all concurrent worker results are drained before
the batch returns. This pull request contains one additional focused commit and
can be rebased onto upstream
masterafter the dependency merges.Verification
go test -count=1 ./...go test -race -count=1 ./...golangci-lint run --timeout=180swith v2.9.0backend/protondrivetests compiled and passed with a temporarymodule replacement pointing to this checkout
existing service PID and suppresses guarded restarts